/**
*动态按钮面板，可以想象成一个横向的SmartList,只是没有滚动条而已
*根据一个数组在给定的区域创建一系列动态的按钮
*
*注意这个弄玩了需要添加到舞台上
 */

package kgame5.kgui.kcomp {
import kgame5.kutil.*;

import flash.display.*;
import flash.events.*;

public class SmartDynamicBtnsPane extends EventDispatcher{
	public static const 
		EVENTTYPE_OK:String="EVENTTYPE_OK";//选则了一个条目
		
	//_____________________Property______________________________
	
	private var mc:MovieClip;
	
	//持有各个smartButton
	private var aSB:Array;
	
	//被选中的歌手的名字,被选中歌手的id
	public var 
		selectedData:Object,//选中条目里的数据内容
		selectedLabel:String="";//选中条目里的标签
		
	private var sItemLinkID:String;
	
	private var PaneWidth:int;
	private var ItemWidth:int;
	
	private var 
		textColorUP:int=0xffffff,
		textColorOVER:int=0xff9900;
	//_____________________Method______________________________
	public function SmartDynamicBtnsPane(p_PaneWidth:int,p_ItemWidth:int,p_sItemLinkID:String,p_textColorUP:int=0xffffff,p_textColorOVER:int=0xff9900){
		mc=new MovieClip();
		sItemLinkID=p_sItemLinkID;
		
		PaneWidth=p_PaneWidth;
		ItemWidth=p_ItemWidth;
		
		textColorUP=p_textColorUP;
		textColorOVER=p_textColorOVER;
	}
	public function hide(){
		mc.visible=false;
	}
	public function show(){
		mc.visible=true;
	}
	public function getDO():MovieClip{
		return mc;
	}
	//aItemData是一个数组，形式为{lable:"121212",data:123},data可以是各种个样的数据
	public function Start (aItemData:Array){//心理测试的类型GSPDU
		T.p("Start");
		var len:int=aItemData.length;
		var hspace:int=(PaneWidth-ItemWidth*len)/len;//两个条目间的水平距离
		
		aSB=new Array();
		
		for(var i:int=0;i<len;i++){
			
			//--滚动字
			var mc_xb:MovieClip=Util.AttachMC(sItemLinkID);//mc["mc_xb_"+i];
			
			//吧mc_xb添加到舞台
			mc.addChild(mc_xb);
			mc_xb.x=i*(ItemWidth+hspace);
			
			//--设置信息
			mc_xb.data=aItemData[i].data;
			mc_xb.label=aItemData[i].label;
			
			//--生成按钮
			var sb:SmartButton=new SmartButton(mc_xb,aItemData[i].label);
			sb.SetLableColor(
				textColorUP,
				textColorOVER,
				0xffffff,
				0xffffff
			);
			
			//--!!必须有东西持有sb,否则sb就消失了，则mc_item的事件响应函数也消失了
			aSB.push(sb);
			
			//--响应事件
			Util.OnPress(mc_xb, OnPressBtn);
		}
	}
	
	private function OnPressBtn(e:MouseEvent){
		
		var mc_xb:MovieClip=MovieClip(e.currentTarget);
		
		selectedData=mc_xb.data;
		selectedLabel=mc_xb.label;
		
		//T.p("OnPressSinger",selectedLabel,selectedData);
		
		//--发送事件说我选择了一个歌手
		this.dispatchEvent(new KEvent(EVENTTYPE_OK));
		
	}
	
}//end of class
}
